package com.itheima.d8_tcp5;

import java.io.DataOutputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;

public class ServerReaderThread extends Thread{
    private Socket socket;
    public ServerReaderThread(Socket socket){
        this.socket = socket;
    }
    @Override
    public void run() {
        //  立即响应一个网页内容：“黑马程序员”给浏览器展示。响应是把内容写出去，所以是得到个输出流
        try {
            OutputStream os = socket.getOutputStream();     //报异常，用try catch拦截

        /*  这样子写，网页是收不到响应的数据，因为没有按照HTTP协议规定的数据格式
            DataOutputStream dos = new DataOutputStream(os);
            //注意：服务器必须给浏览器响应HTTP协议规定的数据格式，否则浏览器不识别返回的数据。
            dos.writeUTF("曾季洪牛逼！");
            dos.close();        //把数据输出流关闭掉
            socket.close();     //把管道关闭掉。网页发起请求，一般网页数据写完后，这次通信就结束了，所以称之为短连接
*/
            //把上面的改造：由于响应给网页的数据是一行一行的，数据输出流不太好控制换行，建议包装成打印流
            PrintStream ps = new PrintStream(os);
            ps.println("HTTP/1.1 200 OK");
            ps.println("Content-Type:text/html;charset=UTF-8");
            ps.println(); // 必须换行
            //换行之后，才可以开始真正的响应一个网页内容给浏览器
            ps.println("<div style='color:red;font-size:120px;text-align:center'>黑马程序员666<div>");
            ps.close();
            socket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
